package com.lihepeng.leecode.tree.langbuladong;


import com.lihepeng.leecode.tree.TreeNode;

import java.util.ArrayList;
import java.util.List;

/**
 * 二叉树的中序遍历
 * 给定一个二叉树的根节点 root ，返回它的 中序 遍历。
 * 中序遍历 为左 根 右
 */
public class Solution94 {
    private List<Integer> resultList = new ArrayList<>();
    public List<Integer> inorderTraversal(TreeNode root) {
        if (root == null) {
            return resultList;
        }
        if (root.left!=null){
            inorderTraversal(root.left);
        }
        resultList.add(root.val);
        if (root.right !=null) {
            inorderTraversal(root.right);
        }
        return resultList;

    }

    /**
     * 使用动态规划思路完成
     * @param root
     * @return
     */
    public List<Integer> inorderTraversal01(TreeNode root) {

        if (root == null) {
            return resultList;
        }
        if (root.left!=null){
            inorderTraversal(root.left);
        }
        resultList.add(root.val);
        if (root.right !=null) {
            inorderTraversal(root.right);
        }
        return resultList;

    }

}
